package br.com.financeiro.dao;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

import br.com.financeiro.domain.Conta;
import br.com.financeiro.domain.Usuario;

public class ContaDaoImpl implements ContaDao{

	
	private Session session;
	
	

	public void setSession(Session session) {
		this.session = session;
	}

	public void salvar(Conta conta) {
		this.session.saveOrUpdate(conta);
		
	}

	public void excluir(Conta conta) {
		this.session.delete(conta);
		
	}

	public Conta recarregar(Integer conta) {
		return (Conta)this.session.get(Conta.class, conta);
	}

	public List<Conta> listar(Usuario usuario) {
		Criteria criteria = this.session.createCriteria(Conta.class);
		criteria.add(Restrictions.eq("usuario",usuario));
		return criteria.list();
	}

	public Conta buscaFavorita(Usuario usuario) {
		Criteria criteria = this.session.createCriteria(Conta.class);
		criteria.add(Restrictions.eq("usuario",usuario));
		criteria.add(Restrictions.eq("favorita", true));
		return (Conta)criteria.uniqueResult();
	}

}
